package com.molichuxing.services.infrastructure.service;


import com.molichuxing.framework.dto.Paged;
import com.molichuxing.framework.service.RootService;
import com.molichuxing.services.infrastructure.dto.request.create.SubcompanyCreateDto;
import com.molichuxing.services.infrastructure.dto.request.modify.SubcompanyModifyDto;
import com.molichuxing.services.infrastructure.dto.response.SubcompanyDto;

import java.util.List;
import java.util.Map;

public interface SubcompanyService extends RootService {

    /***
     * 根据分子公司id 获取分子公司名称 或者详情
     * @param id
     * @return
     */
    SubcompanyDto getSubcompanyNameById(Integer id);

    /***
     * 根据分子公司id 集合获取分子公司名称 或者详情
     * @param ids
     * @return
     */
    Map<Integer, SubcompanyDto> getSubcompanyNameByIds(List<Integer> ids);

    /***
     * 根据城市id 获取分子公司名称 或者详情
     * @param cityId
     * @return
     */
    List<SubcompanyDto> getSubcompanyByCityId(List<Integer> cityId);

    /***
     *分子公司列表
     * @param name
     * @param responsibleAccountName
     * @param regionId
     * @return
     */
    Paged<SubcompanyDto> getSubcompanyListPage(String name, String responsibleAccountName, Integer regionId, Integer pageSize, Integer pageNum);


    /***
     * 新增分子公司
     * @param insertDto
     * @return
     */
    int createSubcompany(SubcompanyCreateDto insertDto);


    /***
     * 编辑分子公司
     * @param modifyDto
     * @return
     */
    int modifySubcompany(SubcompanyModifyDto modifyDto);


    List<SubcompanyDto> getSubcompanyByName(String name);

    SubcompanyDto getSubcompanyByFullName(String fullName);
}
